Current state of the art software license protection methods support software license enforcement based on a “license key” concept. A license key, herein referenced as “key,” is an encrypted string that contains information such as, for example, the software product's ID, the software product's entitled usage limit and expiration date, and the serial number of the system where the key may be installed. Computer enterprises, which consist of multiple systems, are supported using either of the two following methods.
Firstly, a key is created, then distributed, then installed, for each licensed software product on each system. Unfortunately, this method can result in a large number of keys that are often quite difficult to manage. For example, an enterprise with 11,000 systems and three software packages would need 33,000 unique keys. To reduce the number of keys, some vendors offer a key that is not based on a system serial number and that can be installed on any system. For this example, only three keys would then be needed, meaning one per licensed product.
In spite of the known solutions, there still remain difficulties in license management. Currently license manager products are used to manage software licenses. However, they need their own infrastructure as well as initial user involvement. Another of the difficulties of enforcing license criteria, especially in a networked software solution, is that each application or component in the solution may need to rely on the licensed operation of other applications or components to perform their respective roles in the solution. For instance, if a payroll application requires a database management application for the entire solution to function properly, there is a need to insure that the payroll application and the database management application both have valid licenses. However it is difficult in conventional systems to communicate the validity of licenses from one application to another. Conventional license managers do not offer any means for different applications that form a solution to communicate with each other regarding the validity or invalidity of the respective licenses.